package com.xian.tszs.meal.business;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xian.tszs.meal.entity.GsCategory;
import com.xian.tszs.meal.entity.TsAdmin;
import com.xian.tszs.meal.service.GsCategoryService;

/***
 * 商家类别管理模块
 * 
 * @Title: BsCategoryManageController.java
 * @author MRC
 * @date 2019年5月19日 下午4:56:14
 * @version V1.0
 */
@Controller
@RequestMapping("business/category")
public class GsCategoryManageController {

	@Autowired
	private GsCategoryService gsCategoryService;
	
	/**
	 * 跳转至类别管理
	 * 
	 * @author: MRC
	 * @date 2019年5月19日 下午5:22:28
	 * @return String 返回类型
	 */
	@GetMapping("categoryManage")
	public String toGoodsList() {

		return "categoryManage";
	}
	
	/***
	 * 跳转至统计页面
	* @author: MRC  
	* @date 2019年5月21日 下午4:52:44 
	* @return String 返回类型
	 */
	@GetMapping("statistics")
	public String toCoStatistics() {

		return "statistics";
	}
	
	/**
	 * 增加一个类别
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 上午11:53:19
	 * @return String 返回类型
	 */
	@GetMapping("categoryAdd")
	public String toCategoryAdd() {

		return "categoryAdd";

	}

	/***
	 * 分页展示类别
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 上午9:16:44
	 * @return Map<String,Object> 返回类型
	 */
	@PostMapping("findCategoryPage")
	@ResponseBody
	public Map<String, Object> findCategoryPage(Integer page, Integer limit,@AuthenticationPrincipal TsAdmin logined,GsCategory gsCategory) {

		Map<String, Object> map = new HashMap<String, Object>();

		PageHelper.startPage(page, limit, "sort");
		gsCategory.setBusinessId(logined.getId());
		
		List<GsCategory> lists = gsCategoryService.findGscategoryAll(gsCategory);
		PageInfo<GsCategory> pageInfo = new PageInfo<GsCategory>(lists);

		map.put("code", 0);
		map.put("count", pageInfo.getTotal());
		map.put("data", pageInfo.getList());

		return map;
	}

	/***
	 * 按照字段更新类别
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 上午11:23:49
	 * @return Map<String,Object> 返回类型
	 */
	@PostMapping("updateCategory")
	@ResponseBody
	public Map<String, Object> updateCategory(String field, String value, String id) {

		Map<String, Object> map = new HashMap<String, Object>();

		gsCategoryService.updateCategory(field, value, id);

		map.put("success", true);
		map.put("msg", "修改成功！");
		return map;
	}

	/**
	 * 保存一个类别
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 下午1:48:58
	 * @return Map<String,Object> 返回类型
	 */
	@PostMapping("saveCategory")
	@ResponseBody
	public Map<String, Object> saveCategory(GsCategory gsCategory,@AuthenticationPrincipal TsAdmin logined) {
		
		gsCategory.setBusinessId(logined.getId());
		gsCategoryService.saveCategory(gsCategory);

		Map<String, Object> map = new HashMap<String, Object>();

		map.put("success", true);
		map.put("msg", "新增成功！");

		return map;
	}
	
	/***
	 * 删除一条数据
	* @author: MRC  
	* @date 2019年5月20日 下午2:23:21 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("deleteCategory")
	@ResponseBody
	public Map<String, Object> deleteCategory(String id) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		gsCategoryService.deleteCategory(id);
		map.put("success", true);
		map.put("msg", "删除成功！");
		
		return map;
	}
	
	/***
	 * 删除多个数据对象
	* @author: MRC  
	* @date 2019年5月27日 下午3:28:17 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("deleteMany")
	@ResponseBody
	public Map<String, Object> deleteMany(@RequestParam("ids[]") String [] ids) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		gsCategoryService.deleteMany(ids);
		map.put("success", true);
		map.put("msg", "删除成功！");
		return map;
	}
	
}
